﻿using System;
using System.Text.Json.Serialization;

namespace TowerCraneMonitorClient.NetClient.HeartBeat
{
    /// <summary>
    /// 心跳
    /// </summary>
    public class Data : NetClient.Entity
    {
        /// <summary>
        /// 心跳时间。Json（unix时间戳）
        /// </summary>
        [JsonPropertyName("sendTime")]
        public long SendTimeStamp => SendTime.ToUnixTimeStamp().ToLong();

        /// <summary>
        /// 心跳时间。常规时间格式
        /// </summary>
        [JsonIgnore]
        public DateTime SendTime { get; set; }


        /// <summary>
        /// 基于该对象生成 HeartBeat.Req 报文
        /// </summary>
        /// <param name="errorMessage">失败时返回错误信息，成功时返回 null</param>
        /// <returns>成功时返回 HeartBeat.Req 对象，失败时返回 null</returns>
        public new Req ToReq() => new Req(this);

    }
}
